<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      * {
        padding: 0;
        margin: 0;
        box-sizing: border-box;
      }
      .row {
        display: flex;
        align-items: center;
        margin: 10px;
        column-gap: 2vw;
      }
      textarea {
        width: 30vw;
        height: 10vw;
      }
      .btn1 {
        width: 20vw;
        height: 10vw;
      }
      .btn2 {
        width: 20vw;
        height: 10vw;
      }
      ul {
        margin-left: 50px;
      }
    </style>
  </head>
  <body>
    <div class="row">
      <textarea name="" id="" placeholder="请输入内容"></textarea>
      <button class="btn1">向前添加</button>
      <button class="btn2">向后添加</button>
    </div>
    <ul>
      <li>示例列表项</li>
    </ul>
    <script>
      // 获取页面上的textarea元素和两个按钮元素以及无序列表元素
      const textarea = document.querySelector("textarea");
      const btn1 = document.querySelector(".btn1");
      const btn2 = document.querySelector(".btn2");
      const ul = document.querySelector("ul");

      // 为第一个按钮(btn1)添加点击事件监听器
      btn1.addEventListener("click", () => {
        // 创建一个新的列表项元素
        const newLi = document.createElement("li");
        // 设置列表项的文本内容为textarea中的值，并去除首尾空格
        newLi.innerText = textarea.value.trim();
        // 为新的列表项添加点击事件监听器，当点击时，移除该列表项
        newLi.addEventListener("click", () => {
          newLi.remove();
        });
        // 在无序列表的最前面插入新的列表项
        ul.prepend(newLi);
      });

      // 为第二个按钮(btn2)添加点击事件监听器
      btn2.addEventListener("click", () => {
        // 创建一个新的列表项元素
        const newLi = document.createElement("li");
        // 设置列表项的文本内容为textarea中的值，并去除首尾空格
        newLi.innerText = textarea.value.trim();
        // 为新的列表项添加点击事件监听器，当点击时，移除该列表项
        newLi.addEventListener("click", () => {
          newLi.remove();
        });
        // 在无序列表的最后面插入新的列表项
        ul.append(newLi);
      });
    </script>
  </body>
</html>
